-- Soglia di hp per iniziare a curarsi Default: UO.MaxHits per curare appena manca 1hp
hits = 113


--Inizio script
bandagetype = 3617 

function main()
  local items
  nBende = ContaBende()    
  while true do
    wait(5)
    if UO.Hits < hits or string.find(UO.CharStatus,"C") and not string.find(UO.CharStatus,"D") then
    while CharGhost() do
      wait (5)
    end
      bende = ContaBende()
      if bende >= 1 then
        WaitCursor() --controlla che il cursore non sia in stato targeting
        UO.Macro(58,0)
        bandageStart = getticks() 
        counter()
        if bende <= 15 then
          UO.SysMessage("hai solo " .. bende .. " bende!",233)
          UO.ExMsg(UO.CharID,3,233, bende .. " bende!")
        end  
      end 
    end
  end
end  
 
function CharGhost()
-- true se vivo false se morto
  return ( UO.CharType==607 or UO.CharType==608 or UO.CharType==402 or UO.CharType==403 )     
end

function counter()
timer = ( 11 -  ( UO.Dex - ( UO.Dex % 10 ) ) / 20 ) 
if timer % 1 > 0 and UO.Dex % 20 > 0 then --arrotondamento x la formula secondo stratics
  timer = timer + 0.5
  end
for i=timer,1,-1 do
  UO.ExMsg(UO.CharID,3,375,tostring(i))
  wait(980)
  end 
end

function ContaBende()
local cnt = UO.ScanItems(true)-1 
  for i=cnt, 0 , -1 do
    local id,type,kind,contid,x,y,z,stack,rep,col = UO.GetItem(i)
    if contid == UO.BackpackID and type == bandagetype and stack > 0 then
     idbende = id
     return stack 
    end
  end
return 0
end

function WaitCursor(t)
if t == nil then
  timeout = 1000 + getticks ()
else 
  timeout = t + getticks ()
  end
while UO.TargCurs == true and timeout > getticks() do 
   wait (5)
   if timeout <= getticks() then
      return false
      end 
   end
return true 
end

main()